package com.yaoq.proxy.cglib;

/**
 * @ClassName Client
 * @Description TODO
 * @Author yaoqiang
 * @Date 2020/9/1 11:25
 * @Version 1.0
 * 几种常见的代理模式介绍
 * 防火墙代理：内网通过代理穿透防火墙，实现对公网的访问
 * 缓存代理，
 * 远程代理，通过它可以把远程对象当做本地对象来调用，远程代理通过网络和真正的远程对象沟通信息
 * 同步代理，主要在使用多线程编程中，完成多线程的同步任务
 *
 * <dependency>
 * <groupId>cglib</groupId>
 * <artifactId>cglib</artifactId>
 * <version>3.3.0</version>
 * </dependency>
 */
public class Client {
    public static void main(String[] args) {
        TeacherDao target = new TeacherDao();
        TeacherDao proxyInstance = (TeacherDao) new ProxyFactory(target).getProxyInstance();
        String res = proxyInstance.teach();
        System.out.println(res);
    }
}
